package com.briup.server.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.briup.server.domain.bean.DeviceType;
import com.briup.server.domain.dto.ConditionQueryDTO;
import com.briup.server.service.DeviceTypeService;
import com.briup.server.mapper.DeviceTypeMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;


@Service
public class DeviceTypeServiceImpl extends ServiceImpl<DeviceTypeMapper, DeviceType>
        implements DeviceTypeService {

    @Override
    public Page<DeviceType> pageQuery(ConditionQueryDTO queryDTO) {
        // 根据分页信息，创建分页对象
        Page<DeviceType> page = new Page<>(queryDTO.getPage(), queryDTO.getSize());
        // 构建查询条件构造器
        LambdaQueryWrapper<DeviceType> wrapper = Wrappers.<DeviceType>lambdaQuery()
                // 只有在查询时传入了实际的名字，才需要将其作为查询条件
                .like(StringUtils.hasText(queryDTO.getName()),
                        DeviceType::getTypeName, queryDTO.getName());
        // 分页查询数据
        page(page, wrapper);
        // 查询符合条件的数据条数，然后设置到total中
        page.setTotal(count(wrapper));
        return page;
    }
}




